package com.ibiaoke.order.utils;

import com.ibiaoke.common.utils.DateUtils;
import com.ibiaoke.common.utils.HttpUtil;
import com.ibiaoke.common.utils.MD5Utils;
import org.apache.log4j.Logger;

import java.util.Date;
import java.util.Random;

public class ZhuhangUtil {

    private static String userid = "123456789";     //对应接口参数  用户名 可以在软件后台设置
    private static String pwd = "67890619";        //对应接口参数  密码 可以在软件后台设置
    public static String store = "10";    //对应接口参数  连接的门店
    private static String licensekey = "01043001"; //对应接口参数  软件序列号 分配的固定值

    private static String AuthCode1 = "00000000000000000001";  //对应接口参数  分配的固定值 
    private static String AuthCode2 = "VM";  //对应接口参数  分配的固定值 
    private static String AuthCode3 = "88";  //对应接口参数  分配的固定值  

    private static String PostUrl = "http://a.adsz.net/01043001/datatrans.aspx"; //服务器地

    private static Logger logger = Logger.getLogger(ZhuhangUtil.class);

    /**
     * 获取助航基本通信地址URL
     * @return
     */
    public static String getURLInterFace()
    {

        ////////随机数计算
        String rd = getRandom(5);
        String tm = DateUtils.format(new Date(), "yyyyMMddhhmmss");
        String rnd = tm + rd;


        //随机数和用户密码进行加密
        String md5pwd = MD5Utils.getMD5String(pwd).toUpperCase(); //用户密码做32位MD5加密
        String md5pwd_right18 = md5pwd.substring(14);//取用户密码MD5的后18位数
        String msnstr = md5pwd_right18 + rnd;//18位位数连接随机数 
        String msn = MD5Utils.getMD5String(msnstr).toUpperCase(); //2次MD5加密

        String url = PostUrl + "?u=" + userid + "&t=" + rnd + "&msn=" + msn + "&i=" + store + "&h=" + AuthCode1 + "&sn=" + licensekey + "&j=" + AuthCode2 + "&b=" + AuthCode3;
        return url;
    }

    public static Random random = new Random();
    public static String getRandom(int len)
    {

        StringBuilder strbu = new StringBuilder();

        for (int i = 0; i < len; i++)
        {
            strbu.append(random.nextInt(10));
        }
        return strbu.toString();

    }

    /**
     * 基础函数
     * @param url
     * @return
     */
    public static String funHTTP(String url)   {
        String res = "";
        try {
            res = HttpUtil.httpClientGet(url);
            res="</r>"+res+"<r>";
        }
        catch (Exception ex) {
            // MessageBox.Show("连接服务器出错", "提示");
            logger.error("连接助航服务器出错");
            ex.printStackTrace();
        }
        return res;
    }
    /// <summary>
    /// ///////////////////////////////////////以上为基础函数
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>


    /**
     * 获取门店资料数据
     * @return
     */
    public static String getShop() {
        String url = getURLInterFace() + "&f=7702";
        return funHTTP(url);
    }

    /**
     * 查询助航订单
     * @param store 店铺编号
     * @param beginTime 起始时间
     * @param endTime 结束时间
     * @return
     */
    public static String listOrder(String store, String beginTime, String endTime) {
        ZhuhangUtil.store= store;
        String url = getURLInterFace() + "&f=5282&qsrq=" + beginTime + "&jzrq=" + endTime + "&key=";
        return funHTTP(url);
    }

    /**
     * 获取订单详情
     * @param store 店铺编号
     * @param dh 订单编号
     * @return
     */
    public static String getOrderInfo(String store, String dh) {
        ZhuhangUtil.store= store;
        String url = getURLInterFace() + "&f=52821&dh=" + dh;
        return funHTTP(url);
    }

    /**
     * 获取助航会员信息
     * @param cardNo
     * @return
     */
    public static String getMember(String cardNo) {
        String url = getURLInterFace() + "&f=7801&kh=" +cardNo;
        return funHTTP(url);
    }

}
